<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <title>天气案例-监视属性</title>
</head>

<body>
    <!-- 
        监视属性watch：
            1.当被监视的属性变化时回调函数自动调用 进行相关操作
            2.监视属性必须存在， 才能进行监视
            3.监视的两种方法
                1.new vue 传入watch配置
                2.通过 vm.$watch 监视

     -->
    <div id="root">
        <h1>今天天气很{{info}}</h1>
        <button @click="update">修改天气</button>
    </div>
    <script>
        const vm = new Vue({
            el: '#root',
            data: {
                tianqi: true
            },
            methods: {
                update() {
                    //   alert("1")
                    this.tianqi = !this.tianqi;

                    // console.log("原来来的天气很" + this.info + ",现在天气很" + this.info)
                }
            },
            computed: {
                info() {
                    return this.tianqi ? "炎热" : "寒冷"
                }
            },
            watch: {
                tianqi: {
                    immediate: true, // 当初始化时让  handler调用
                    //handler什么时候调用？ 当tianqi发生变化时
                    handler(newvalue, oldvalue) {
                        console.log("tianqi被修改", newvalue, oldvalue)
                    }
                }
            }

        })

        // vm.$watch('tianqi', {
        //     immediate: true, // 当初始化时让  handler调用
        //     //handler什么时候调用？ 当tianqi发生变化时
        //     handler(newvalue, oldvalue) {
        //         console.log("tianqi被修改", newvalue, oldvalue)
        //     }
        // })
    </script>
</body>

</html>